A typical hard disk drive assembly includes a plurality of disks mounted on a spindle and a head assembly for writing data to each surface of each of the disks. A separate head is used to write data to and read data from each surface of each disk. Data stored on a hard disk drive is typically accessed by three parameters: the heads, each being associated with a particular surface of a particular disk; cylinders, each including data accessed at a given radius for a single revolution of the disks, on all surfaces of the disks in the hard disk drive; and sectors, which are specific-size pieces of data, typically 512 Kb, within a given revolution of a disk.
On most disk drives, data is laid out on the disks starting at the beginning of a cylinder and proceeding to the end of the cylinder before moving to the next cylinder. FIG. 1 is a schematic diagram showing this method of writing data to a hard disk drive. As shown in FIG. 1, data is written to each sector of the first cylinder (Cylinder 0) with each head, Head 0 through the last or maximum head (Max Head). Cylinder 1 is then written to in descending order of the heads, from the Max Head to Head 0. Each cylinder is written to in this manner until the ending sector on the last or maximum cylinder (Max Cylinder) is written to.
An alternative method of writing data to a hard disk drive involves writing data to more than one cylinder for each head before proceeding to the next head. FIG. 2 is a schematic diagram showing this method of writing data to a hard disk drive. As shown in FIG. 2, data is written to Cylinders 0 through N with Head 0, before switching to Head 1 to write to Cylinders N through 0. Each head writes to the same number of cylinders until the last or maximum head (Max Head). Cylinders N+1 through the last or maximum cylinder (Max Cylinder) are then written to with each of Heads 0 through the Max Head.
While these methods of writing data to a hard disk drive may be efficient from a data writing and reading perspective, if one of the heads fails, the data that is available to be read is not easily recovered, since there are many non-contiguous ranges of sectors that will not be readily recoverable because of the failed head.